# -*- coding: utf-8 -*-  
  
import os  
import smtplib  
import mimetypes  
from email.MIMEMultipart import MIMEMultipart  
from email.MIMEBase import MIMEBase  
from email.MIMEText import MIMEText  
from email.MIMEAudio import MIMEAudio  
from email.MIMEImage import MIMEImage  
from email.Encoders import encode_base64  
import sys
import subprocess
  
def sendMail(subject, text, mailtolist, *attachmentFilePaths):  
   # mailtolist=['jing.chen@ajagene.com','wguo@ajagene.com','rongji.hou@ajagene.com']
    gmailUser = 'xgreport@ajagene.com'  
    gmailPassword = 'Agene888'  
    recipient = 'jing.chen@ajagene.com,yangchun.he@ajagene.com,chen.yang@ajagene.com,lijuan.xu@ajagene.com,yi.wen@ajagene.com' 
    copyto = 'rongji.hou@ajagene.com' 
  
    msg = MIMEMultipart()  
    msg['From'] = gmailUser  
    msg['To'] = recipient
    if len(mailtolist)>5:  
        msg['CC'] = copyto
    msg['Subject'] = subject  
    msg.attach(MIMEText(text))  
  
    for attachmentFilePath in attachmentFilePaths:  
        msg.attach(getAttachment(attachmentFilePath))  
  
    mailServer = smtplib.SMTP('smtp.exmail.qq.com')  
    mailServer.ehlo()  
    mailServer.starttls()  
    mailServer.ehlo()  
    mailServer.login(gmailUser, gmailPassword) 
    print("login") 
    mailServer.sendmail(gmailUser, mailtolist, msg.as_string())  
    mailServer.close()  
  
    print('Sent email to %s' % recipient)  
  
def getAttachment(attachmentFilePath):  
    contentType, encoding = mimetypes.guess_type(attachmentFilePath)  
  
    if contentType is None or encoding is not None:  
        contentType = 'application/octet-stream'  
  
    mainType, subType = contentType.split('/', 1)  
    file = open(attachmentFilePath, 'rb')  
  
    if mainType == 'text':  
        attachment = MIMEText(file.read())  
    elif mainType == 'message':  
        attachment = email.message_from_file(file)  
    elif mainType == 'image':  
        attachment = MIMEImage(file.read(),_subType=subType)  
    elif mainType == 'audio':  
        attachment = MIMEAudio(file.read(),_subType=subType)  
    else:  
        attachment = MIMEBase(mainType, subType)  
    attachment.set_payload(file.read())  
    encode_base64(attachment)  
  
    file.close()  
  
    attachment.add_header('Content-Disposition', 'attachment',   filename=os.path.basename(attachmentFilePath))  
    return attachment  


cmd="cat pos.lis"
out=""
possa=subprocess.check_output(cmd,shell=True)
if possa:
    out="Causion!\nFound POSITIVE samples!\n" + possa.decode("utf-8")
    mailtolist=['jing.chen@ajagene.com','yangchun.he@ajagene.com','rongji.hou@ajagene.com','chen.yang@ajagene.com','lijuan.xu@ajagene.com','yi.wen@ajagene.com']
else:
    out="Easy!\nNo positive sample found.\n"
    mailtolist=['jing.chen@ajagene.com','yangchun.he@ajagene.com','chen.yang@ajagene.com','lijuan.xu@ajagene.com','yi.wen@ajagene.com']


ssid=sys.argv[1]
header="CNV_GZ_"+ssid
zipfile=sys.argv[2]

  
# start to test  
sendMail(header, out, mailtolist, zipfile) 
